<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      //           test
      // test 是用来检测字符串是否符合我们正则的标准

      // 语法： 正则.test(字符串)

      // 返回值： boolean
      console.log(/\d+/.test("123")); // true
      console.log(/\d+/.test("abc")); // false

      //       exec
      // exec 是把字符串中符合条件的内容捕获出来

      // 语法： 正则.exec(字符串)

      // 返回值： 把字符串中符合正则要求的第一项以及一些其他信息，以数组的形式返回
      // 2.exec：执行 可以获取匹配到的值；
      // 默认前提下叫 惰性匹配；只会匹配一次；
      // 全局匹配；在整个字符串里不停的匹配 g
      var reg = /\d+/g;
      var str = "fdsafsda2131fda32432fda2432faf";
      console.log(reg.exec(str));
      console.log(reg.exec(str));
      console.log(reg.exec(str));
      console.log(reg.exec(str));

      // 二、字符串和正则相关的方法；（字符串方法 可以使用正则来进行匹配）
      // 1.split();
      var str = "fdsaf231fafd3213fafsa";
      var reg = /\d+/;
      var arr = str.split(reg);
      console.log(arr);

      // 2.search:搜索 符合规则的字符的索引 ，找到就返还索引值 找不到就返还-1
      var str = "dsafdaga432675dgqa";
      var reg = /\d+/;
      console.log(str.search(reg));
      // 3.match:查找符合规则的字符 放在数组里
      // 全局影响
      var str = "dsafdaga432675dgqa";
      var reg = /\d+/g;
      console.log(str.match(reg) == !isNaN);

      // replace：替换；
      // 修饰符 g：全局匹配  i：忽略大小写；
      var str = "fdafdSM1fdasfSM20dSM2000asm100fdsafd";

      var reg = /SM\d+/gi;
      //   var res = str.replace(reg, "**");
      var res = str.replace(reg, function (arg) {
        var resStr = "";
        for (var i = 0; i < arg.length; i++) {
          resStr += "*";
        }
        return resStr;
      });
      console.log(res);
    </script>
  </body>
</html>
